/*
    item道具
    存放和道具相关的代码
*/

// 金币的构造函数  
function Coin(x, y, width, height, speed) {
    this.x = x
    this.y = y
    this.width = width
    this.height = height
    this.img = coinImg
    this.speed = speed
    this.isRecycle = false // 就是用于标志一下 当前这个对象需不需要被回收   为true就表明要回收掉

    this.draw = function (ctx) {
        ctx.drawImage(this.img, this.x, this.y, this.width, this.height)
    }

    this.move = function () {
        this.y += this.speed

        if (this.y > HEIGHT) {
            this.isRecycle = true
        }
    }

    // 用来检测 当前的这个道具对象 有没有和 玩家发送碰撞
    this.checkCollide = function (player) {
        if (player.HP <= 0) {
            return
        }
        // 检测 当前对象（this） 有没有和玩家发生碰撞
        if (isCollide(player, this)) {
            this.collideEffect(player)
        }
    }

    // 如果对象和玩家碰撞了之后， 会进行的操作
    this.collideEffect = function (player) {
        // 玩家会得分
        player.score += 10;
        // 金币要被回收
        this.isRecycle = true;
    }
}

function Shit(x, y, width, height, speed) {
    this.x = x
    this.y = y
    this.width = width
    this.height = height
    this.img = shitImg
    this.speed = speed
    this.isRecycle = false // 就是用于标志一下 当前这个对象需不需要被回收   为true就表明要回收掉

    this.draw = function (ctx) {
        ctx.drawImage(this.img, this.x, this.y, this.width, this.height)
    }

    this.move = function () {
        this.y += this.speed

        if (this.y > HEIGHT) {
            this.isRecycle = true
        }
    }
    // 用来检测 当前的这个道具对象 有没有和 玩家发送碰撞
    this.checkCollide = function (player) {
        if (player.HP <= 0) {
            return
        }
        // 检测 当前对象（this） 有没有和玩家发生碰撞
        if (isCollide(player, this)) {
            this.collideEffect(player)
        }
    }

    // 如果对象和玩家碰撞了之后， 会进行的操作
    this.collideEffect = function (player) {
        // 玩家会掉血
        player.HP -= 1;
        //(中毒效果)效果持续3s
        player.poison();
        this.isRecycle = true;
    }
}

function Bomb(x, y, width, height, speed) {
    this.x = x
    this.y = y
    this.width = width
    this.height = height
    this.img = bombImg
    this.speed = speed
    this.isRecycle = false // 就是用于标志一下 当前这个对象需不需要被回收   为true就表明要回收掉

    this.draw = function (ctx) {
        ctx.drawImage(this.img, this.x, this.y, this.width, this.height)
    }

    this.move = function () {
        this.y += this.speed

        if (this.y > HEIGHT) {
            this.isRecycle = true
        }
    }
    // 用来检测 当前的这个道具对象 有没有和 玩家发送碰撞
    this.checkCollide = function (player) {
        if (player.HP <= 0) {
            return
        }
        // 检测 当前对象（this） 有没有和玩家发生碰撞
        if (isCollide(player, this)) {
            this.collideEffect(player)
        }
    }

    // 如果对象和玩家碰撞了之后， 会进行的操作
    this.collideEffect = function (player) {
        // 玩家会得分
        player.HP = 0;
        player.bomb();
        this.isRecycle = true;
    }
}